// 引入request请求函数
import { request } from '../../request/request'
import { showToast } from '../../utils/wxAsync'

Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 顶部条幅信息
    bannerInfo: {},
    // 人气推荐商品列表
    goodsList: [],
    count: 0,//商品总数量
    totalPages: 0,//商品总页数
    page: 1,// 当前页
    size: 20,// 每页显示商品数量
    sort: 'default',// 商品排序,默认default,价格排序：price
    order: 'desc',// 升序：asc,降序：desc
    categoryId: 0
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getBannerInfo()
    this.getGoodsList()
  },
  // 发送请求，获取bannerInfo
  async getBannerInfo() {
    const res = await request({url: '/goods/hot'})
    this.setData({
      bannerInfo: res.data.bannerInfo
    })
  },
  // 发送请求，获取人气推荐商品列表
  async getGoodsList() {
    // 准备发送请求的参数
    let { page, size, sort, order, categoryId, goodsList } = this.data
    let queryParams = {
      isHot: 1,
      page,
      size,
      sort,
      order,
      categoryId
    }
    // 发送请求
    const res = await request({url: '/goods/list', data: queryParams})
    console.log(res)
    if (res.errno === 0) {
      this.setData({
        count: res.data.count,
        totalPages: res.data.totalPages,
        size: res.data.pageSize,
        page: res.data.currentPage,
        goodsList: [...goodsList, ...res.data.goodsList]
      })
    }  
  },
  // 排序商品
  handleSortGoods(e) {
    // 获取自定义参数，判断点击的综合或者价格排序
    const { params } = e.currentTarget.dataset
    let { sort, order } = this.data
    console.log(params)
    sort = params
    // 若点击了价格排序，判断升降排序
    if (params === 'price') {
      if (order === 'desc') {
        order = 'asc'
      } else {
        order = 'desc'
      }
    }
    // 更新data中数据
    this.setData({
      sort,
      order,
      // 清空原有数组
      goodsList: [],
      // 重新设置当前页
      page: 1
    })
    this.getGoodsList()
  },
  // 页面触底事件
  async onReachBottom() {
    let { totalPages, page, goodsList } = this.data
    if (goodsList.length !== 0 && page < totalPages) {
      page++
      this.setData({
        page
      })
      this.getGoodsList()
    } else if (goodsList.length !== 0 && page >= totalPages) {
      await showToast({title: '我是有底线的---', icon: 'none'})
    }
  }
})